[小ネタ]ECSタスクのタグ付けはタグの伝播元を設定しよう
困っていた
こんにちは!AWS事業本部のおつまみです。
皆さん、ECSタスクに自動でタグ付けをしたいと思ったことはありますか?私はあります。
起動しているECSタスク毎の費用を管理するために、コスト配分タグを設定しようと思いました。 そこで、ECSタスク定義にはこのようにタグを付与しました。
しかし、ECSタスクを起動しても、タグは付与されていないようでした。
こちらの問題について解決方法をご紹介します!
結論
- ECSタスク定義またはサービスについてる同じタグをタスクに伝播するためには、「タグの伝播元」を設定する必要があります。
- デフォルトでは「伝播しない」になっています。
変更方法
マネジメントコンソール経由
- Amazon ECS コンソールを開き、[タスク定義]を選択します。
-
対象のタスク定義を選択し、[デプロイ]→[タスクの実行]または[サービスの作成]選択します。今回はタスク定義からタグを伝播させるため、[タスクの実行]を選択します。
-
[タグの伝播元]で、デフォルトは [伝播しない]になっています。そのため[サービス]または [タスク定義]を選択します。
さっそく起動したタスクを確認してみましょう。
無事タグが付与されていることを確認できました!
AWS CLI経由
タスクの実行時またはサービスの作成時は、RunTask および CreateService API を使用します。
タグ伝播には、--propagate-tags
パラメータを指定します。
タスク定義からタスクにタグを伝播するかどうかを指定します。値が指定されていない場合、タグは伝播されません。タグはタスクの作成時にのみタスクに伝播できます。タスクの作成後にタスクにタグを追加するには、TagResource API アクションを使用します。
可能な値:
TASK_DEFINITION
SERVICE
NONE
以下のコマンドを実行します。
aws ecs run-task \ --cluster "${CLUSTER_NAME}" \ --task-definition "${TASK_DEF_ARN}" \ --network-configuration "${NETWORK_CONFIG}" \ --launch-type FARGATE \ --propagate-tags TASK_DEFINITION \
こちらも起動したタスクを確認してみましょう。
無事タグが付与されていることを確認できました!
最後に
今回はECS タスクのタグ付けをタスク定義・サービスから伝播する方法をご紹介しました。
最後までお読みいただきありがとうございました! どなたかのお役に立てれば幸いです。
以上、おつまみ(@AWS11077)でした!